﻿Imports System.IO

Class CMIssuePR

    Private SerIssue As New CIssuePRServicio()

#Region "Carga página"
    Private Sub CMIssuePR_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles Me.Loaded
        Try

            Mouse.OverrideCursor = Cursors.Arrow
        Catch ex As Exception
            Mouse.OverrideCursor = Cursors.Arrow

            MessageBox.Show("Error TI500. " & ex.Message, "Carga página Issue PR", MessageBoxButton.OK, MessageBoxImage.Error)
        End Try
    End Sub

#End Region

    Private Sub btnEjecutar_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles btnEjecutar.Click
        Dim strRutaBat As String = SerIssue.ObtieneRutaBatIssue()

        If File.Exists(strRutaBat) Then
            Dim msgResultado As MessageBoxResult = MessageBox.Show("¿Desea ejecutar la macro Bancario Issue PR?", "Ejecución Issue PR", MessageBoxButton.YesNo, MessageBoxImage.Question)

            If msgResultado = MessageBoxResult.Yes Then
                Try
                    Mouse.OverrideCursor = Cursors.Wait

                    EjecucionProceso(strRutaBat)

                    Mouse.OverrideCursor = Cursors.Arrow
                Catch ex As Exception
                    Dim intBitacoraError As Integer = CUtileria.GrabarBitacora("IssuePR", "Ejecución", ex.Message)
                    CUtileria.CompletarRegBitacora(intBitacoraError)

                    Mouse.OverrideCursor = Cursors.Arrow

                    MessageBox.Show("Error TI500. " & ex.Message, "Ejecución Issue PR", MessageBoxButton.OK, MessageBoxImage.Error)
                End Try
            End If
        Else
            MessageBox.Show("Verificar que exista el archivo " + strRutaBat + " para poder ejecutar la macro", "Ejecución Issue PR", MessageBoxButton.OK, MessageBoxImage.Error)
        End If        
    End Sub

    Private Sub EjecucionProceso(ByVal strRutaBat As String)

        Dim proceso As New Process()        
        Dim intBitacora = CUtileria.GrabarBitacora("IssuePR", "Ejecución", "Ejecución del bat en " + strRutaBat)

        proceso.EnableRaisingEvents = True
        proceso.StartInfo.UseShellExecute = False
        proceso.StartInfo.FileName = strRutaBat
        proceso.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
        proceso.StartInfo.RedirectStandardError = True
        proceso.Start()

        Dim strError As String = proceso.StandardError.ReadToEnd()

        proceso.WaitForExit()

        Dim strErrorAuxiliar = strError.Replace("Controlador no v lido.", "").Trim()

        If strErrorAuxiliar = "" Then
            CUtileria.CompletarRegBitacora(intBitacora)

            Mouse.OverrideCursor = Cursors.Arrow

            MessageBox.Show("Proceso ejecutado correctamente", "Ejecución Issue PR", MessageBoxButton.OK, MessageBoxImage.Information)
        Else
            Dim intBitacoraError As Integer = CUtileria.GrabarBitacora("IssuePR", "Ejecución", strErrorAuxiliar)
            CUtileria.CompletarRegBitacora(intBitacoraError)

            Mouse.OverrideCursor = Cursors.Arrow

            MessageBox.Show(strErrorAuxiliar, "Ejecución Issue PR", MessageBoxButton.OK, MessageBoxImage.Error)
        End If
    End Sub
End Class
